↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
p2: (b,f)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
p_2_in_ga2(X, X) -> p_2_out_ga2(X, X)
p_2_in_ga2(f_11(X), g_11(Y)) -> if_p_2_in_1_ga3(X, Y, p_2_in_ga2(f_11(X), f_11(Z)))
if_p_2_in_1_ga3(X, Y, p_2_out_ga2(f_11(X), f_11(Z))) -> if_p_2_in_2_ga4(X, Y, Z, p_2_in_ga2(Z, g_11(Y)))
if_p_2_in_2_ga4(X, Y, Z, p_2_out_ga2(Z, g_11(Y))) -> p_2_out_ga2(f_11(X), g_11(Y))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
p_2_in_ga2(X, X) -> p_2_out_ga2(X, X)
p_2_in_ga2(f_11(X), g_11(Y)) -> if_p_2_in_1_ga3(X, Y, p_2_in_ga2(f_11(X), f_11(Z)))
if_p_2_in_1_ga3(X, Y, p_2_out_ga2(f_11(X), f_11(Z))) -> if_p_2_in_2_ga4(X, Y, Z, p_2_in_ga2(Z, g_11(Y)))
if_p_2_in_2_ga4(X, Y, Z, p_2_out_ga2(Z, g_11(Y))) -> p_2_out_ga2(f_11(X), g_11(Y))
P_2_IN_GA2(f_11(X), g_11(Y)) -> IF_P_2_IN_1_GA3(X, Y, p_2_in_ga2(f_11(X), f_11(Z)))
P_2_IN_GA2(f_11(X), g_11(Y)) -> P_2_IN_GA2(f_11(X), f_11(Z))
IF_P_2_IN_1_GA3(X, Y, p_2_out_ga2(f_11(X), f_11(Z))) -> IF_P_2_IN_2_GA4(X, Y, Z, p_2_in_ga2(Z, g_11(Y)))
IF_P_2_IN_1_GA3(X, Y, p_2_out_ga2(f_11(X), f_11(Z))) -> P_2_IN_GA2(Z, g_11(Y))
p_2_in_ga2(X, X) -> p_2_out_ga2(X, X)
p_2_in_ga2(f_11(X), g_11(Y)) -> if_p_2_in_1_ga3(X, Y, p_2_in_ga2(f_11(X), f_11(Z)))
if_p_2_in_1_ga3(X, Y, p_2_out_ga2(f_11(X), f_11(Z))) -> if_p_2_in_2_ga4(X, Y, Z, p_2_in_ga2(Z, g_11(Y)))
if_p_2_in_2_ga4(X, Y, Z, p_2_out_ga2(Z, g_11(Y))) -> p_2_out_ga2(f_11(X), g_11(Y))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
P_2_IN_GA2(f_11(X), g_11(Y)) -> IF_P_2_IN_1_GA3(X, Y, p_2_in_ga2(f_11(X), f_11(Z)))
P_2_IN_GA2(f_11(X), g_11(Y)) -> P_2_IN_GA2(f_11(X), f_11(Z))
IF_P_2_IN_1_GA3(X, Y, p_2_out_ga2(f_11(X), f_11(Z))) -> IF_P_2_IN_2_GA4(X, Y, Z, p_2_in_ga2(Z, g_11(Y)))
IF_P_2_IN_1_GA3(X, Y, p_2_out_ga2(f_11(X), f_11(Z))) -> P_2_IN_GA2(Z, g_11(Y))
p_2_in_ga2(X, X) -> p_2_out_ga2(X, X)
p_2_in_ga2(f_11(X), g_11(Y)) -> if_p_2_in_1_ga3(X, Y, p_2_in_ga2(f_11(X), f_11(Z)))
if_p_2_in_1_ga3(X, Y, p_2_out_ga2(f_11(X), f_11(Z))) -> if_p_2_in_2_ga4(X, Y, Z, p_2_in_ga2(Z, g_11(Y)))
if_p_2_in_2_ga4(X, Y, Z, p_2_out_ga2(Z, g_11(Y))) -> p_2_out_ga2(f_11(X), g_11(Y))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
IF_P_2_IN_1_GA3(X, Y, p_2_out_ga2(f_11(X), f_11(Z))) -> P_2_IN_GA2(Z, g_11(Y))
P_2_IN_GA2(f_11(X), g_11(Y)) -> IF_P_2_IN_1_GA3(X, Y, p_2_in_ga2(f_11(X), f_11(Z)))
p_2_in_ga2(X, X) -> p_2_out_ga2(X, X)
p_2_in_ga2(f_11(X), g_11(Y)) -> if_p_2_in_1_ga3(X, Y, p_2_in_ga2(f_11(X), f_11(Z)))
if_p_2_in_1_ga3(X, Y, p_2_out_ga2(f_11(X), f_11(Z))) -> if_p_2_in_2_ga4(X, Y, Z, p_2_in_ga2(Z, g_11(Y)))
if_p_2_in_2_ga4(X, Y, Z, p_2_out_ga2(Z, g_11(Y))) -> p_2_out_ga2(f_11(X), g_11(Y))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
IF_P_2_IN_1_GA3(X, Y, p_2_out_ga2(f_11(X), f_11(Z))) -> P_2_IN_GA2(Z, g_11(Y))
P_2_IN_GA2(f_11(X), g_11(Y)) -> IF_P_2_IN_1_GA3(X, Y, p_2_in_ga2(f_11(X), f_11(Z)))
p_2_in_ga2(X, X) -> p_2_out_ga2(X, X)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
IF_P_2_IN_1_GA1(p_2_out_ga1(f_11(Z))) -> P_2_IN_GA1(Z)
P_2_IN_GA1(f_11(X)) -> IF_P_2_IN_1_GA1(p_2_in_ga1(f_11(X)))
p_2_in_ga1(X) -> p_2_out_ga1(X)
p_2_in_ga1(x0)
IF_P_2_IN_1_GA1(p_2_out_ga1(f_11(Z))) -> P_2_IN_GA1(Z)
p_2_in_ga1(X) -> p_2_out_ga1(X)
POL(p_2_out_ga1(x1)) = 1 + x1
POL(f_11(x1)) = 2 + 2·x1
POL(p_2_in_ga1(x1)) = 2 + x1
POL(P_2_IN_GA1(x1)) = 2·x1
POL(IF_P_2_IN_1_GA1(x1)) = x1
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
P_2_IN_GA1(f_11(X)) -> IF_P_2_IN_1_GA1(p_2_in_ga1(f_11(X)))
p_2_in_ga1(x0)